package com.domain.vo;

import com.domain.po.ProductPrice;
import com.domain.po.Proxy;
import com.enums.ProductStart;
import com.enums.ProductType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 17645
 * @date 2024/06/17
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProductDetailsVO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 商品id
     */
    private Long productId;

    /**
     * 商品名称
     */
    private String productName;
    /**
     * 商品头图
     */
    private String productImage;
    /**
     *商品文字描述
     */
    private String description;
     /**
     *商品类型
     */
    private ProductType productTypeName;

    /**
     *商品详情
     */
    private String richText;

    /**
     * 驳回原因
     */
    private String productRejectMsg;

    /**
     * 商品通过原因
     */
    private String productAgreeMsg;
    /**
     *商品分类
     */
    private String productCategoryName;
    /**
     *供应商名称
     */
    private String supplierName;
    /**
     *供应商联系方式
     */
    private String supplierPhone;
    /**
     *服务保障
     */
    private String supplierSafeguard;
    /**
     *商品创建时间
     */
    private LocalDateTime createTime;
    /**
     *商品修改时间
     */
    private LocalDateTime updateTime;

    /**
     *不发货地区
     */
    private List<String> cityBlacklist;
    /**
     *兑换类型
     */
    private List<ProductPrice> productExchangeType;
    /**
     *兑换上限
     */
    private Integer exchangeRestrictions;
    /**
     *商品初始库存量
     */
    private Integer inStock;

    /**
     * 商品剩余库存
     */
    private Integer remainingStock;
    /**
     *投放城市
     */
    private List<String> cityWhitelist;
    /**
     *商品上线时间
     */
    private LocalDate timeOn;
    /**
     *商品下线时间
     */
    private LocalDate timeOff;
    /**
     *代理人集合
     */
    private List<Proxy> proxys;
    /**
     *商品状态
     */
    private ProductStart productState;
}
